Spread spectrum signal demodulation method and apparatus

ABSTRACT

The present invention relates to a spread spectrum signal demodulating method whereby spread-code synchronous acquisition and carrier synchronous acquisition are performed using FFT at high speed, wherein a received signal, of which the carrier wave is modulated with a signal obtained by spectrum-spreading data with a spread code, is subjected to the FFT and the result of the FFT is stored in a first memory. The FFT result of the received signal stored in the first memory and the result of FFT of the spread code, the result being stored in a second memory, are read out and the results are multiplied to detect the correlation between the received signal and the spread code. During the detection of the correlation, a readout address of either the FFT result of the received signal or the FFT result of the spread code is shifted by an amount corresponding to a carrier frequency of the received signal and the result is read from the first or second memory. The result of the multiplication is subjected to inverse FFT, thus detecting the correlation point between the received signal and the spread code.

TECHNICAL FIELD

The present invention relates to a method and apparatus for demodulatinga spread spectrum signal such as a GPS (Global Positioning System)satellite signal.

BACKGROUND ART

In a GPS system for measuring the location of a mobile unit usingsatellites (GPS satellites), a GPS receiver has a basic function ofreceiving signals from four or more GPS satellites, calculating thelocation of the receiver on the basis of the received signals, andinforming the user of the location.

The GPS receiver demodulates the signals from the GPS satellites tocapture orbital data of the GPS satellites and then derives thethree-dimensional location of the present receiver from the orbits ofthe GPS satellites, time information, and delay time of the receivedsignals by means of simultaneous equations. The reason why the four GPSsatellites from which signals are obtained are needed is that there isan error between time in the GPS receiver and time in each satellite andthe signals are used in order to eliminate the effect of the error.

A civilian GPS receiver receives spread spectrum signal waves called C/A(Clear and Acquisition) codes on the L1 band from GPS satellites(Navstar) to perform the positioning operation.

The C/A code is a signal, of which carrier wave (hereinbelow, referredto as a carrier) having a frequency of 1575.42 MHz is subjected to BPSK(Binary Phase Shift Keying) modulation with a signal obtained byspreading 50-bps data with a PN (Pseudorandom Noise) sequence code suchas a Gold code having a transmission signal rate (chip rate) of 1.023MHz and a code length of 1023. In this case, since the code length is1023, as shown in (A) of FIG. 21, the C/A code serving as the PNsequence code repeats on condition that 1023 chips correspond to oneperiod (therefore, one period=one millisecond).

The GPS satellites use different PN sequence codes as the C/A codes. TheGPS receiver can previously distinguish the kinds of PN sequence codesused by the respective GPS satellites from each other. The GPS receiveralso determines that a signal transmitted from each GPS satellite can bereceived on a predetermined location at predetermined time using anavigation message, which will be described later. Accordingly, forexample, in the three-dimensional positioning, the GPS receiver receivesradio waves from four or more GPS satellites which can be acquired onthat location at that time and then performs spectrum despreading andthe positioning operation to obtain its own location.

As shown in (B) of FIG. 21, one bit of satellite signal data istransmitted every 20 periods of the PN sequence code, namely, 20milliseconds. That is, the data transmission rate is 50 bps. A codepattern of 1023 chips corresponding to one period of the PN sequence ina case where a bit indicates “1” is opposite to that in a case where abit indicates “0”.

As shown in (C) of FIG. 21, in the GPS, one word is composed of 30 bits(600 milliseconds). As shown in (D) of FIG. 21, one subframe (sixseconds) is composed of 10 words. As shown in (E) of FIG. 21, preambleis disposed at the head word of one subframe, the preamble serving as abit pattern which is always fixed even when data is updated. Data istransmitted subsequent to the preamble.

Further, one frame (30 seconds) is composed of five subframes. Thenavigation message is transmitted every one frame serving as a dataunit. Information called ephemeris information peculiar to satellites iscomposed of three former subframes of the one-frame data. Thisinformation includes parameters to obtain the orbit of the satellite andtransmission time of a signal from the satellite.

Each GSP satellite has an atomic clock and uses common time information.The transmission time of a signal from the GSP satellite is measured inseconds of the atomic clock. The PN sequence code of the GPS satelliteis generated on condition that the code is synchronized with the atomicclock.

Orbital information of the ephemeris information is updated everyseveral hours. The same orbital information is used until theinformation is updated. However, when the orbital information of theephemeris information is stored in a memory of the GPS receiver, thesame orbital information can be used accurately for several hours. Thetransmission time of a signal from each GSP satellite is updated everysecond.

The navigation message composed of the latter two subframes of theone-frame data denotes information called almanac information which istransmitted from all the satellites in common. The almanac informationneeds 25 frames to obtain all information. The almanac informationcomprises approximate positional information of the GPS satellites andinformation indicating which GPS satellite can be used. The almanacinformation is updated every several months. The same almanacinformation is used until the information is updated. However, when thealmanac information is stored in a memory of the GPS receiver, the sameinformation can be used accurately for several months.

In order to receive the GPS satellite signal and then obtain theabove-mentioned data, the carrier is first removed. After that, usingthe same PN sequence code (hereinbelow, the PN sequence code will bereferred to as a PN code) as that of the C/A code used in the GPSsatellite to be received, the same PN code being prepared in the GPSreceiver, the phase of the signal from the GPS satellite is synchronizedwith the phase of the C/A code to capture the signal from the GPSsatellite. Then, the captured signal is spectrum-despread. After thephase synchronization with the C/A code is acquired and the despreadingis performed, bits are detected. Thus, the navigation message includingtime information and the like can be obtained from the signal from theGPS satellite.

The signal from the GPS satellite is acquired by searching the phasesynchronization with the C/A code. In searching the phasesynchronization, the correlation between the PN code of the GPS receiverand the PN code of a received signal from the GPS satellite is detected.For example, when a correlation value of the correlation detectionresult is larger than a predetermined value, it is determined that bothof the codes are synchronized with each other. If it is determined thatthey are not synchronized with each other, the phase of the PN code ofthe GPS receiver is controlled using any synchronizing method so as tobe synchronized with the PN code of the received signal.

As mentioned above, the GPS satellite signal is a signal, of whichcarrier is subjected to BPSK modulation with a signal obtained byspreading data with a spread code. Accordingly, in order to allow theGPS receiver to receive the GPS satellite signal, it is necessary toacquire only spread-code synchronization but also carriersynchronization and data synchronization with the GPS satellite signal.However, the spread-code synchronization and the carrier synchronizationcannot be separately performed.

In the GPS receiver, generally, the carrier frequency of the receivedsignal is converted into an intermediate frequency of several MHz andthe above-mentioned synchronization detecting process is performed usingthe intermediate frequency. The carrier in the intermediate-frequencysignal includes a frequency error caused by Doppler shift correspondingto the moving speed of the GPS satellite and a frequency error of alocal oscillator, the error being caused in the GPS receiver when thereceived signal is converted into an intermediate-frequency signal.

Therefore, the carrier frequency of the intermediate-frequency signal isunknown due to these frequency errors. It is necessary to search thecarrier frequency. Since a synchronization point (synchronized phase) inone period of the spread code depends on the positional relationshipbetween the GPS receiver and the GPS satellite, the synchronizationpoint is also unknown. As mentioned above, any synchronizing method isneeded.

In conventional GPS receivers, frequency search with respect to carriersand a synchronizing method using a sliding correlator+DLL (Delay LockedLoop)+Costas loop are used. This method will now be describedhereinbelow.

Serving as a clock to drive a PN code generator in a GPS receiver, aclock having a frequency obtained by dividing the frequency of areference frequency oscillator prepared in the GPS receiver is generallyused. A high-precision quartz oscillator is used serving as thereference frequency oscillator. On the basis of an output of thereference frequency oscillator, a local oscillation signal used toconvert a received signal from a GPS satellite into anintermediate-frequency signal is generated.

FIG. 22 is a diagram explaining the frequency search. That is, when thefrequency of a clock signal to drive the PN code generator of the GPSreceiver is set to a frequency f1, phase synchronization search withrespect to the PN code is performed. In other words, the phase of the PNcode is sequentially shifted chip by chip. The correlation between theGPS received signal and the PN code at each chip phase is detected todetect the peak correlation value. Thus, the phase at whichsynchronization can be acquired is detected.

In the case where the frequency of the clock signal is set to f1, ifthere is no phase for synchronization in searching all the phases of1023 chips, for example, a frequency dividing rate for the referencefrequency oscillator is varied to change the frequency of the drivingclock signal to a frequency f2. Then, phases of 1023 chips are similarlysearched. As shown in FIG. 22, the above operation is repeated while thefrequency of the driving clock signal is being changed stepwise. Theabove-mentioned operation is the frequency search.

When the frequency of the driving clock signal at which thesynchronization can be realized is detected by the frequency search, thefinal phase synchronization between the PN codes is performed at theclock frequency. Thus, even when there is oscillation frequency drift inthe quartz frequency oscillator, satellite signals can be captured.

However, in principle, the above-mentioned conventional method servingas the synchronizing method is not suitable for high-speedsynchronization. In actual receivers, in order to compensate the method,it is necessary to realize multi-channel formation and search for asynchronization point in parallel. As mentioned above, the spread-codesynchronization and the carrier synchronization require long time,resulting in slow response of the GPS receiver. Disadvantageously, it isinconvenient in actual use.

For the phase synchronization for the spread codes, the improvement ofthe capability of hardware represented by DSP (Digital Signal Processor)realizes a method for high-speed code synchronization using a digitalmatched filter utilizing fast Fourier transform (hereinbelow, referredto as FFT (Fast Fourier Transform)) process without using theabove-mentioned method using the sliding correlation.

However, the use of the digital matched filter needs to synchronize withthe carrier of the received signal to cancel carrier components.Hitherto, in order to cancel the carrier components, informationregarding a carrier frequency is derived from others through, forexample, a radio network. On the basis of the information, theoscillation frequency of a variable frequency oscillator is controlled.Then, in a time domain prior to the FFT, the received signal ismultiplied by the oscillation output of the variable frequencyoscillator, thus canceling the carrier components.

Accordingly, in addition to a multiplier for converting a signal into anintermediate-frequency signal, another multiplier is needed.Disadvantageously, the construction for synchronization with thereceived signal is complicated.

In consideration of the above disadvantages, it is an object of thepresent invention to provide a method whereby spread-code acquisitionand carrier acquisition with a spread spectrum signal such as a GPSsatellite signal can be performed at high speed using FFT with arelatively simple construction, and an apparatus utilizing the method.

DISCLOSURE OF INVENTION

In order to solve the above problems, according to the present invention(1), there is provided a spread spectrum signal demodulating methodincluding the steps of:

performing FFT to a received signal, of which carrier wave is modulatedwith a signal obtained by spectrum-spreading data with a spread code,and then storing the result of the FFT in a first memory;

reading the FFT result of the received signal stored in the first memoryand the result of FFT of a spread code, the result being stored in asecond memory, and multiplying them to detect the correlation betweenthe received signal and the spread code;

shifting a readout address of either the FFT result of the receivedsignal or the FFT result of the spread code by an amount correspondingto a carrier frequency of the received signal, and then reading the fastFourier transform result from the first memory or the second memory; and

performing inverse FFT to the result of the multiplication to detect thecorrelation point between the received signal and the spread code.

According to the present invention (2), in the spread spectrum signaldemodulating method according to the present invention (1),

the carrier frequency of the received signal is known in a receiver, thereadout address is shifted by an amount corresponding to the knowncarrier frequency, and the FFT result is then read from the first memoryor the second memory.

According to the present invention (3), there is provided a spreadspectrum signal demodulating method including the steps of:

performing FFT to a received signal and then storing the result of theFFT in a first memory;

multiplying the FFT result of the received signal read from the firstmemory by the result of FFT of a spread code, the result being read froma second memory;

performing inverse FFT to the result of the multiplication to obtain acorrelation detection output between the received signal and the spreadcode; and

searching the peak of the correlation between the received signal andthe spread code on the basis of the correlation detection output anddetermining the peak of the correlation, while shift-controlling areadout address of either the FFT result of the received signal or theFFT result of the spread code in the first memory or the second memoryon the basis of the result of the search, to detect the correlationpoint between the received signal and the spread code.

According to the present invention (4), in the spread spectrum signaldemodulating method according to the present invention (1) or (3),

the FFT of the received signal, of which carrier wave is modulated witha signal obtained by spectrum-spreading data with a spread code, and theFFT of the spread code are performed every M periods (M is an integer oftwo or more) of the spread code.

According to the present invention (5), in the spread spectrum signaldemodulating method according to the present invention (4),

in the FFT of the received signal, the whole frequency components of thereceived signal are not simultaneously calculated, the FFT of thereceived signal is divided into L times (L is an integer of two ormore), and the FFT of the received signal is performed every 1/L.

As will be described later, for example, when the result of themultiplication of a received signal and a carrier signal is subjected toFFT, the FFT result thereof is equivalent to a FFT result of thereceived signal obtained by shifting a discrete frequency by an amountcorresponding to a carrier frequency.

Using the characteristics of the FFT, in the present invention (1),either the FFT result of the received signal or the FFT result of thespread code is shifted by an amount corresponding to the carrierfrequency of the received signal and is then read from the memory. TheFFT result shifted and read out in this manner is equivalent to the FFTresult from which the carrier components are removed.

Accordingly, when the FFT result of the received signal read from thememory is multiplied by the FFT result of the spread code, and theresult of the multiplication is subjected to inverse FFT to obtain thecorrelation therebetween, the peak value of the correlation can beobtained without frequency search of the carrier. Thus, the spread-codesynchronization can be detected. In other words, according to thepresent invention (1), the spread-code synchronization and the carriersynchronization can be acquired without using a multiplier for carrierelimination.

When a carrier frequency is unknown in the same case as the presentinvention (2), the present invention (1) is very effective. For example,when the amount of Doppler shift is exactly estimated and theoscillation frequency and time information in the GPS receiver arecorrect, the carrier frequency is known. The readout address in thememory is shifted using the known carrier frequency, so that the carriersynchronization can be acquired.

In the same way as the present invention (1), according to the presentinvention (3), basically, the readout address of the FFT result iscontrolled to acquire the carrier synchronization. The present invention(3) is effective when the carrier frequency is unknown.

In other words, according to the present invention (3), while the amountof shift of the readout address of either the FFT result of the receivedsignal or the FFT result of the spread code is being changed on thebasis of the correlation detection output of the result of the inverseFFT, the correlation point between the received signal and the spreadcode is searched. The peak value of the correlation detection output isdetected, thus detecting the correlation point. The carrier frequencycan be detected at the shift phase at which the correlation detectionoutput has a peak.

According to the present invention (4), the FFT of the received signalis not performed every one period of the spread code. The FFT isperformed every plural periods of the spread code. When the FFT isperformed every plural periods of the spread code as mentioned above,the FFT results each corresponding to one period are accumulated forplural periods and noise components statistically distributed at randomare reduced. Thus, the C/N of the correlation detection result isimproved.

When the FFT is performed every plural periods of the spread code in thesame case as the present invention (4), a memory having a large capacityis needed. According to the present invention (5), in consideration ofthe flow of the FFT calculation, the FFT calculation is divided into Ltimes (L is an integer of two or more) so that the same calculationstructure components are set to a unit, and the FFT of the receivedsignal is performed every 1/L. Consequently, when a memory has acapacity necessary for the FFT calculation of each time, it issufficient.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing the configuration of a GPS receiver ofa spread spectrum signal demodulating apparatus according to a firstembodiment of the present invention.

FIG. 2 is diagram showing an example of spectrum of a correlationdetection output.

FIG. 3 is a diagram for explaining a general example of a method foracquiring carrier synchronization and spread-code synchronization with areceived signal.

FIG. 4 is a diagram for explaining a method for acquiring carriersynchronization and spread-code synchronization with a received signalaccording to the embodiments of the present invention.

FIG. 5 is a diagram showing the configuration of an essential partconsidering the operation according to the first embodiment.

FIG. 6 is a block diagram showing the configuration of a GPS receiver ofa spread spectrum signal demodulating apparatus according to a secondembodiment of the present invention.

FIG. 7 is a part of a flowchart for explaining the operation accordingto the second embodiment.

FIG. 8 is a part of the flowchart for explaining the operation accordingto the second embodiment.

FIG. 9 is a diagram showing the configuration of an essential partconsidering the operation according to the second embodiment.

FIG. 10 is a diagram for explaining a spread spectrum signaldemodulating apparatus according to a third embodiment of the presentinvention.

FIG. 11 is a graph for explaining the spread spectrum signaldemodulating apparatus according to the third embodiment of the presentinvention.

FIG. 12 is a diagram showing the configuration of an essential partconsidering the operation according to the third embodiment.

FIG. 13 is a graph for explaining a spread spectrum signal demodulatingapparatus according to a fourth embodiment of the present invention.

FIG. 14 is a graph for explaining a spread spectrum signal demodulatingapparatus according to the fourth embodiment of the present invention.

FIG. 15 is a graph for explaining the spread spectrum signaldemodulating apparatus according to the fourth embodiment of the presentinvention.

FIG. 16 is a graph for explaining the spread spectrum signaldemodulating apparatus according to the fourth embodiment of the presentinvention.

FIG. 17 is a diagram used in the explanation regarding the essentialpart according to the fourth embodiment.

FIG. 18 is a diagram used in the explanation regarding the essentialpart according to the fourth embodiment.

FIG. 19 is a part of a flowchart for explaining the operation accordingto the fourth embodiment.

FIG. 20 is a part of the flowchart for explaining the operationaccording to the fourth embodiment.

FIG. 21 includes diagrams explaining the construction of a signaltransmitted from a GPS satellite.

FIG. 22 is a graph for explaining a conventional process for carriersynchronization and spread-code synchronization.

FIG. 23 is a diagram used in the explanation regarding the embodimentsof the present invention.

BEST MODE FOR CARRYING OUT THE INVENTION

Embodiments of a spread spectrum signal demodulating method according tothe present invention will now be described hereinbelow with respect toa case where the method is applied to a GPS receiver as mentioned abovewith reference to the drawings.

[First Embodiment]

FIG. 1 is a block diagram showing an example of the configuration of aGPS receiver in a spread spectrum signal demodulating apparatusaccording to a first embodiment. As shown in FIG. 1, a received signal(spread spectrum signal) transmitted from a GPS satellite is received byan antenna 11. The received signal is supplied to anintermediate-frequency converting circuit 13 through a high-frequencyamplifying circuit 12. An output of a reference oscillator 14 comprisinga quartz oscillator is supplied to a local oscillating circuit 15, thusobtaining a local oscillation output in which the ratio of the frequencythereof to an output frequency of the reference oscillator is fixed.

The local oscillation output is supplied to the intermediate-frequencyconverting circuit 13 to low-frequency convert the satellite signal intoan intermediate-frequency signal having an intermediate frequency of1.023 MHz. The intermediate-frequency signal is amplified through anamplifying circuit 16 and is then subjected to band limitation by aband-pass filter 17. After that, the resultant signal is supplied to aDSP (Digital Signal Processor) 100.

In FIG. 1, the block diagram corresponding to a portion surrounded by abroken line shows functions performed in the DSP 100, each functionserving as hardware. It is a matter of course that each block can alsobe constructed serving as hardware using a discrete circuit. Theconfiguration of the DSP 100 in FIG. 1 shows the configuration of adigital matched filter.

The signal supplied to the DSP 100 is first converted into a digitalsignal through an A/D converting unit 101 and is then stored in a buffermemory 102. The signal stored in the buffer memory 102 is read out everyperiod (1023 chips) of the spread code. The readout signal is subjectedto a FFT process by a FFT processing unit 103. The FFT result is storedin a memory 104. The FFT result of the received signal read from thememory 104 is supplied to a multiplying unit 105.

On the other hand, a spread code of the same sequence as that of aspread code used in the received signal transmitted from a satellite,the received signal being processed in the DSP 100 at that time, isgenerated from a spread code generating unit 106. The spread codecorresponding to one period (1023 chips) generated from the spread codegenerating unit 106 is supplied to a FFT processing unit 107 and is thensubjected to the FFT process. Further, its complex conjugate iscalculated and the processing result is supplied as the FFT result ofthe spread code to a memory 108. The FFT results are read out inincreasing order of frequency and are then supplied to the multiplyingunit 105.

The multiplying unit 105 multiplies the FFT result of the receivedsignal from the memory 104 by the FFT result of the spread code from thememory 108 to calculate the degree of correlation between the receivedsignal and the spread code in a frequency domain. The result of themultiplication is supplied to an inverse FFT processing unit 109. Thus,the frequency-domain signal is converted back into a time-domain signal.

The inverse FFT result obtained by the inverse FFT processing unit 109represents a time-domain correlation detection signal between thereceived signal and the spread code. The correlation detection signal issupplied to a correlation point detecting unit 110. In the correlationpoint detecting unit 110, whether the received signal is synchronizedwith the spread code is detected. When it is detected that they aresynchronized with each other, the phase of the peak value is detectedserving as a correlation point.

The correlation detection signal indicates a correlation value at eachchip phase of one period of the spread code. When the spread code in thereceived signal is synchronized with the spread code from the spreadcode generating unit 106, a correlation waveform in which thecorrelation value at the phase of one of 1023 chips represents a peakvalue exceeding a predetermined threshold value is obtained as shown inFIG. 2. The chip phase having the peak value serves as the phase of thecorrelation point.

On the other hand, when the spread code in the received signal is notsynchronized with the spread code from the spread code generating unit106, the correlation waveform having the peak value as shown in FIG. 2is not obtained. There is no peak exceeding the predetermined thresholdvalue at any chip phase.

For example, on the basis of a fact indicating whether the peak valueexceeding the predetermined value exists in the correlation detectionsignal supplied to the correlation point detecting unit 110, thecorrelation point detecting unit 110 detects whether the received signalis synchronized with the spread code. When detecting that they aresynchronized with each other, the correlation point detecting unit 110detects the phase of the peak value serving as the correlation point.

In the above description, the carrier of the received signal is notconsidered. Actually, a received signal r(n) includes a carrier as shownin Expression (3) of FIG. 23. In Expression (3), reference symbol Arepresents an amplitude; d(n) data; fo a carrier angular frequency; andn(n) a noise.

Reference symbol fs represents a sampling frequency in the A/Dconverting unit 101 and N denotes the number of sampling times(therefore, 0≦n≦N, 0≦k<N). Then, if 0≦k≦N/2, the relationship between adiscrete frequency k obtained by discrete Fourier transform and a realfrequency f is expressed by f=k·fs/N. When N/2<k<N, the relationshiptherebetween is expressed by f=(k−N)·fs/N (f<0). Due to thecharacteristics of the discrete Fourier transform, when k<0 and k≧N,each of R(k) and C(k) represents periodicity.

In order to obtain the data d(n) from the received signal r(n), it isnecessary to remove the carrier components by acquiring synchronizationwith respect to the spread code c(n) and the carrier cos 2πnf₀. In otherwords, in Expression (2) of FIG. 23, which will be explained later, whenonly R(k) contains the carrier components, the correlation waveform asshown in FIG. 2 is not obtained.

According to the present embodiment, with the simple construction usingonly the frequency-domain process utilizing the FFT, the synchronizationwith respect to the spread code c(n) and the carrier cos 2πnf₀ isacquired, so that the carrier components can be removed.

In other words, generally, the FFT results of the received signals fromthe GPS satellites, the FFT results being obtained from the FFTprocessing unit 103, are read from the memory 104 in increasing order offrequency in the frequency components of the received signal and arethen supplied to the multiplying unit 105. However, according to thepresent embodiment, a readout address is shifted in accordance with acontrol by a readout address control unit 111 and the FFT results of thereceived signal are sequentially read from the memory 104.

Information regarding the carrier frequency of the received signal,which is detected on the basis of a process of correctly estimating theamount of Doppler shift with respect to the GPS satellite from which thereceived signal is obtained and correctly calibrating the oscillationfrequency and time information of the GPS receiver, is supplied to thereadout address control unit 111. The carrier-frequency information canbe formed in the GPS receiver alone. Generally, the information isobtained from the outside.

The readout address control unit 111 shifts the readout address by anamount corresponding to the carrier frequency on the basis of theobtained carrier-frequency information, sequentially reads the FFTresult of the received signal from the memory 104, and then supplies thereadout FFT result to the multiplying unit 105.

As mentioned above, the FFT result of the received signal r(n) isshifted by the amount corresponding to the carrier frequency of thereceived signal and is then read from the memory 104, thus obtaining theFFT result equivalent to the FFT result of the received signal in whichthe carrier components are removed, as will be described later. Theresult of the multiplication of the FFT result, in which the carriercomponents are removed, and the FFT result of one period of the spreadcode is despread. Thus, the correlation detection output, in which thepeak occurs at the correlation point as shown in FIG. 2, can becertainly obtained.

As will be described later, the readout address of the FFT result in thememory 104 is not controlled. The readout address of the FFT result ofthe spread code in the memory 108 is controlled. Thus, the carriercomponents of the received signal r(n) are added to the FFT result ofthe spread code. Multiplication is then performed in the multiplyingunit 105. Consequently, the carrier components can also be substantiallyremoved.

The removal of the carrier components due to the carrier synchronizationand the spread-code synchronization with the received signal bycontrolling the readout address in the memory 104 or 108 will now bedescribed in more detail together with the description of the operationof the digital matched filter process in the DSP 100.

In the present embodiment, the DSP executes the process of the digitalmatched filter. The principle of the process of the digital matchedfilter is based on such a principle that convolutional Fourier transformin the time domain represents multiplication in the frequency domain asshown in Expression (1) of FIG. 23.

In Expression (1), r(n) denotes the received signal in the time domain;R(k) its discrete Fourier transform; c(n) the spread code from thespread code generating unit; C(k) its discrete Fourier transform; ndiscrete time; k a discrete frequency; and F[ ] Fourier transform.

The correlation function between two signals r(n) and c(n) is defined asf(n). The discrete Fourier transform F(k) of f(n) is expressed as shownin Expression (2) of FIG. 23. Therefore, when it is assumed that r(n)denotes the signal from the A/D converting unit 101 in FIG. 1 and c(n)indicates the spread code from the spread code generating unit 106, thecorrelation function f(n) between r(n) and c(n) can be calculated by thefollowing procedure on the basis of Expression (2) as mentioned abovewithout using the normal definitional expression.

-   -   Calculate the discrete Fourier transform R(k) of the received        signal r(n).    -   Calculate the complex conjugate C(k) of the discrete Fourier        transform C(k) of the spread code c(n).    -   Calculate F(k) in Expression (2) using R(k) and the complex        conjugate C(k) of C(k).    -   Calculate the correlation function f(n) by performing inverse        discrete Fourier transform to F(k).

As mentioned above, when the spread code included in the received signalr(n) matches the spread code c(n) from the spread code generating unit106, the correlation function f(n) calculated in the above procedure hasa time waveform having a peak at the correlation point as shown in FIG.2. As mentioned above, in the present embodiment, as discrete Fouriertransform and inverse Fourier transform, high-speed algorithms of theFFT and the inverse FFT are used. Consequently, the correlation can becalculated at remarkably higher speed than that of calculation based onthe definition.

Synchronization with respect to the carrier and the spread codecontained in the received signal r(n) will now be described.

As mentioned above, the received signal r(n) contains the carrier asshown in Expression (3) of FIG. 23. In order to obtain the data d(n)from the received signal r(n), it is necessary to remove the carrier byacquiring synchronization with respect to the spread code c(n) and thecarrier cos 2πnf₀. In other words, when only R(k) contains the carrierin Expression (2) of FIG. 23 mentioned above, the correlation waveformas shown in FIG. 2 is not obtained.

When the amount of Doppler shift is correctly estimated and theoscillation frequency and time information in the GPS receiver arecorrect, the carrier frequency f₀ of the received signal r(n) is known.In this case, as shown in FIG. 3, a multiplying unit 121 is disposed inthe front of the FFT processing unit 103. The multiplying unit 121multiplies the received signal r(n) by the carrier of the frequency f₀from a signal generating unit 122 to perform frequency conversion. Thus,the carrier components can be removed from the received signal r(n)prior to the FFT.

In this case, the FFT result of the received signal in which the carriercomponents are removed is obtained from the memory 104. The FFT resultis multiplied by the FFT result of the spread code c(n) in themultiplying unit 105. Accordingly, a time waveform having a peak at thecorrelation point as shown in FIG. 2 can be certainly obtained servingas an output of the inverse FFT processing unit 109.

As shown in FIG. 3, the carrier components are not removed from thereceived signal r(n), the multiplying unit 121 is disposed in the frontof the FFT processing unit 107 for the spread code c(n), and the spreadcode c(n) is multiplied by the carrier of the frequency f₀ from thesignal generating unit 122 in the multiplying unit 121 to performfrequency conversion, resulting adding the carrier components to thespread code. Thus, the similar effect can be obtained.

In other words, in this case, the carrier components contained in theFFT result of the received signal read from the memory 104 aresynchronized with the added carrier components contained in the FFTresult of the spread code read from the memory 108. Consequently, thecorrelation detection output in which the peak occurs at the correlationpoint as shown in FIG. 2 can be obtained by the inverse FFT processingunit 109.

However, according to the method for multiplying the time-domain signalby the carrier frequency signal as shown in FIG. 3 as mentioned above,the multiplying unit for removing the carrier components is especiallyneeded. The configuration becomes complicated. Disadvantageously, theprocessing speed is lowered by a load corresponding to the multiplyingoperation.

Serving as the characteristics of the FFT, the above-mentioned frequencymultiplication can be expressed as shown in Expression (4) of FIG. 23.In Expression (4), F[ ] denotes the discrete Fourier transform, φ₀denotes a phase difference with the carrier, and k₀ denotes kcorresponding to f₀, where f₀=k₀·fs/N. On the basis of Expression (4),the FFT of the signal obtained by frequency-converting the receivedsignal r(n) as shown in FIG. 3 has a form obtained by shifting R(k)serving as the FFT of r(n) by k₀ corresponding to the carrier frequency.

As mentioned above, the configuration in FIG. 3 can be replaced by aconfiguration as shown in FIG. 4. In other words, instead of multiplyingthe received signal r(n) or the spread code c(n) by the carrierfrequency, the readout address used when the FFT result of the receivedsignal is read from the memory 104 or when the FFT result of the spreadcode is read from the memory 108 is shifted by the amount correspondingto the carrier frequency.

In this case, in FIG. 4, when the received signal r(n) is shifted,down-conversion is used on condition that k₀>0. When the spread codec(n) is shifted, up-conversion is used on condition that k₀<0.

As mentioned above, when the characteristics of the FFT shown inExpression (4) are used, the signal generating unit 122 in FIG. 3 is notneeded. As shown in FIG. 4, when the phase of the readout address of theFFT result in the memory is shifted, it is sufficient. Thus, theconfiguration is simplified, resulting in high-speed processing.

Since the phase difference φ₀ in the foregoing Expression (4) isunknown, it is ignored in FIG. 4. For example, a correlation functionf′(n) (0≦n<N), which is obtained as the operation result of inverse FFTof F′(k) calculated in Expression (5) of FIG. 23, represents a complexnumber. The real part thereof is designated by f_(R)′(n) and theimaginary part thereof is designated by f_(r)′(n). The amplitude |f′(n)|of the correlation peak is obtained as shown in Expression (6) of FIG.23. The phase difference φ₀ is obtained as shown in Expression (7) ofFIG. 23. Accordingly, the multiplication of exp(jφ₀) in the right-handside of Expression (4) can be omitted. The phase difference φ₀represents two values different from each other by π corresponding tothe sign of the data d(n) in Expression (3).

FIG. 5 is a diagram showing the configuration obtained by reflecting theprocessing operation according to the first embodiment as mentionedabove to the block diagram in FIG. 1. In FIG. 5, the above-mentionedsignal outputs r(n) and c(n) and the operation results R(k), C(k), andf′(n) are shown serving as outputs of the blocks.

As mentioned above, according to the method of the first embodiment, inthe case of constructing the digital matched filter utilizing the FFT inthe GPS receiver, as shown in FIG. 5, the address of the FFT result ofthe received signal in the memory is shifted by the amount correspondingto the carrier frequency and is then multiplied by the spread code.Thus, a correlation point np is obtained in a waveform as shown in, forexample, FIG. 5. When the correlation points np of four GPS satellites,namely, four kinds of spread codes c(n) are detected, the position ofthe GPS receiver can be calculated.

In other words, according to the first embodiment, in the case ofperforming the digital matched filter process utilizing the FFT, inorder to acquire the carrier synchronization and the spread-codesynchronization with the received signal, the FFT result of the receivedsignal is multiplied by the FFT result of the spread code in thefrequency domain without multiplication in the time domain. Uponmultiplication, one of the FFT results of the received signal and thatof the spread code is shifted. With the simple method, the carriercomponents of the received signal can be removed.

In the example shown in FIG. 5, the readout address of the FFT resultR(k) of the received signal in the memory is shifted. The readoutaddress of the FFT result C(k) of the spread code in the memory can beshifted in the direction opposite to that of shifting the FFT resultR(k) of the received signal (corresponding to up-conversion in amultiplier).

In the above description regarding the first embodiment, the spread codegenerating unit 106 and the FFT processing unit 107 are separatelyarranged. If the spread codes corresponding to respective GPS satellitesare previously subjected to the FFT and the FFT results are stored in amemory, calculation for the FFT regarding the spread code c(n) uponreception of each satellite signal can be omitted.

[Second Embodiment]

The foregoing first embodiment relates to the case where the carrierfrequency of the received signal from the GSP satellite is known. Asecond embodiment relates to a case where a carrier frequency isunknown. FIG. 6 is a block diagram showing an example of theconfiguration of a GPS receiver according to the second embodiment. InFIG. 6, the same components as those in the GPS receiver in FIG. 1according to the foregoing first embodiment are designated by the samereference numerals.

According to the second embodiment, as shown in FIG. 6, the correlationdetection output of the correlation point detecting unit 110 is suppliedto a readout address control unit 112. In the readout address controlunit 112, the foregoing amount of shift of the readout address of theFFT result of the received signal r(n) in the memory 104 is changed onthe basis of the correlation detection output of the correlation pointdetecting unit 110 mainly using a predictive address determined based onpast data so as to allow the correlation point detecting unit 110 todetect a peak as shown in FIG. 2. When the correlation point detectingunit 110 detects the peak as shown in FIG. 2, the readout addresscontrol unit 112 stops the readout address shift control with the amountof shift at that time.

Processing flow in the DSP 100 according to the second embodiment willnow be described with reference to a flowchart in FIGS. 7 and 8. Theflowchart in FIGS. 7 and 8 corresponds to software processing in the DSP100.

First, a received signal converted into a digital signal by the A/Dconverting unit 101 is stored as the signal r(n) in the memory 102 (stepS1). Subsequently, the signal r(n) is subjected to FFT by the FFTprocessing unit 103. The FFT result R(k) is stored in the memory 104(step S2). Then, the FFT result C(k) of the spread code corresponding tothe GPS satellite from which the signal is received is set in the memory108 (step S3).

Subsequently, an initial value k₀′ serving as the amount of shift of thereadout address of the FFT result R(k) of the received signal r(n) inthe memory 104 is determined on the basis of past data (step S4). Thedetermined initial value k₀′ is set as the amount k′ of shift of thereadout address of the FFT result in the memory 104 and the number ofchanging times m of the shift control is set to an initial value (m=0)(step S5).

Then, the FFT result R(k) of the received signal r(n) is read from thememory 104 so that the readout address is shifted by k′ (step S6). Theread FFT result R(k−k′) is multiplied by the FFT result of the spreadcode to obtain the correlation function F′(k) (step S7).

Subsequently, the correlation function F′(k) is subjected to inverseFFT, thus obtaining the time-domain function f′(n) (step S8). Withrespect to the function f′(n), a peak value f′(np) is obtained (stepS9). Whether the peak value is larger than a preset threshold value fthis determined (step S11).

As a result of the determination in step S11, if the peak value f′(np)is the preset threshold value fth or smaller, it is determined that thecorrelation point cannot be detected. Whether the number of changingtimes m in the shift control is smaller than a preset maximum valuem_(max) is determined (step S16). If it is determined that the number ofchanging times m in the shift control is smaller than the preset maximumvalue m_(max), the number of changing times m in the shift control isincreased by one (m=m+1) and the shift amount k′ is newly set so thatk′=k′+(−1)^(m)×m (step S17). After that, the operation is returned tostep S6. The foregoing process in step S6 and the subsequent processesare repeated.

In step S16, if it is determined that the number of changing times m inthe shift control is the preset maximum value m_(max) or larger, whetherthe foregoing spread-code synchronization search process regarding allthe satellites is finished is determined (step S14). If it is determinedthat the spread-code synchronization search process regarding all thesatellites is finished, the search operation is finished (step S18).

In step S14, if it is determined that there is a satellite to which thespread-code synchronization search is not finished, the next satelliteto be subjected to the spread-code synchronization search is selected.The spread code is changed to the spread code c(n) used in the selectedsatellite (step S15). The operation is returned to step S3 and theprocess in step S3 and the subsequent processes are executed.

In step S11, if it is determined that the peak value f′(np) is largerthan the preset threshold value fth, discrete time (the phase of thespread code) np obtaining the peak value f′(np) is detected as thecorrelation point and the initial value k₀′ of the shift amount of thereadout address of the FFT result R(k) in the memory 104 is reset to theshift amount k′ at that time (step S12).

Whether the detected correlation point np is the fourth point isdetermined (step S13). If it is determined that it is the fourth point,the operation is shifted to a process of calculating the position of thereceiver and a tracking process. On the basis of the shift amount k′ ofthe readout address at the time when the correlation point np detectedin step S12 is obtained, the amount of Doppler shift with respect to theGPS satellite which is being received and an error in the oscillationfrequency of the GPS receiver can be estimated. In other words, thecarrier frequency of the received signal can be detected.

In step S13, when it is detected that the detected correlation point npis less than the fourth point, whether the foregoing spread-codesynchronization search process regarding all the satellites is finishedis determined (step S14). When it is determined that the spread-codesynchronization search process for all the satellites is finished, thesearch operation is completed (step S18).

In step S14, if it is determined that there is a satellite in which thespread-code synchronization search is not finished, the next satelliteto be subjected to the spread-code synchronization search is selected.The spread code is changed to the spread code c(n) used in the selectedsatellite (step S15). The operation is returned to step S3 and theforegoing process in step S3 and the subsequent processes are executed.

FIG. 8 shows a diagram of the configuration obtained by reflecting theabove-mentioned processing operation according to the second embodimentto the block diagram showing the internal configuration of the DSP 100in FIG. 6. The above-mentioned signal outputs and operation results areshown serving as outputs of respective blocks in FIG. 8.

As described above, according to the second embodiment, even if thecarrier frequency of the received signal from the GPS satellite isunknown, the frequency-domain process utilizing the FFT is activelyperformed and the carrier synchronization and the spread-codesynchronization with the received signal are detected, thus removing thecarrier components. Therefore, the detection of the correlation pointbetween the GPS received signal and the spread code by the digitalmatched filter utilizing the FFT can be realized at high speed with asimple construction.

In the second embodiment, similarly, if the spread codes correspondingto the respective satellites are subjected to the FFT and the FFTresults are stored in the memory, calculation for the FFT of the spreadcode c(n) upon reception of each satellite signal can be omitted.

[Third Embodiment]

As mentioned above, when the correlation point between the receivedsignal and the spread code is detected using the digital matched filter,the unit data length used to detect the correlation point is generallyset to one period length of the spread code.

However, in the received signal from the GPS satellite, as mentionedabove, one bit of data corresponds to 20 periods of the spread code. Forthe 20 periods, the same pattern codes are obtained. According to athird embodiment, using such characteristics, the unit data length usedto detect the correlation point between the received signal and thespread code by the digital matched filter is set to a lengthcorresponding to plural periods of the spread code.

According to the third embodiment, as mentioned above, the receivedsignal is subjected to the FFT operating process every plural periods ofthe spread code, resulting in an increase in the reception sensitivity.Accordingly, as compared with the method for cumulatively adding signalsin the same time domain, the carrier frequency can be easily searched.The third embodiment will now be described in more detail.

There is a related art for detecting the correlation point of data ofone period length cumulatively added for M periods (M is the power oftwo that is two or more, the same applying to those that follow) of thespread code (refer to, for example, U.S. Pat. No. 4,998,111 or “AnIntroduction to Snap Track™ Server-Aided GPS Technology, ION GPS-98Proceedings”).

In other words, according to the method of the related art, as shown inFIG. 10, the results of the multiplication of the received signal r(n)by the spread code are accumulated and added for M periods. According tothe method of the related art, the C/N is raised using the periodicityof the received signal from the GPS satellite and the statisticalcharacteristics of noises. When the carrier synchronization and thecode-spread synchronization with the received signal are previouslyacquired, the C/N is increased by M times. Therefore, the receptionsensitivity (detection sensitivity of the correlation point) isincreased by M times.

However, when the carrier synchronization and the spread-codesynchronization with the received signal are not acquired, M carriershaving different phases are added and combined with each other. In thecumulative addition result, the important GPS signal is cancelled andthe correlation peak cannot be detected.

Accordingly, when the carrier frequency of the received signal isunknown, it is necessary to search the carrier frequency. Consequently,cumulative addition for each frequency to be searched, in other words,the inefficient operation has to be performed.

On the other hand, in the foregoing first and second embodiments, asmentioned above, according to the simple method for shifting the readoutaddress of the FFT result in the memory in the frequency domain, thecarrier synchronization and the spread-code synchronization with thereceived signal can be acquired. Thus, the advantage of the cumulativeaddition can be most effective.

According to the third embodiment, in the same case as the secondembodiment, the carrier frequency is searched on condition that thecarrier frequency of the received signal from the GPS satellite isunknown. In this case, the received signal r(n) is subjected to the FFTevery M periods of the spread code. The carrier frequency of thereceived signal is searched every M periods of the spread code bycontrolling the shift amount of the readout address of the FFT result ofthe received signal in the memory.

When M≦20, the data d(n) in Expression (3) of FIG. 23 mentioned aboverepresents a fixed value of 1 or −1 for M periods of the spread code.Accordingly, the data d(n) is negligible. Thus, Expression (3) isexpressed as follows.r(n)=A·c(n)cos 2πnf ₀ +n(n)The received signal r(n) is subjected to the discrete Fourier transformin a M-period length. Since the number of data is 1×N (N denotes thenumber of chips for one period of the spread code), the relationshipbetween k obtained after the discrete Fourier transform and the realfrequency f with respect to the sampling frequency fs is expressed asf=kfs/MN on condition that 0≦k≦MN/2. When MN/2<k<MN, f=(k−MN)fs/MN(f<0). Thus, resolving power is increased by M times.

However, the spread code c(n) is a periodic signal. When timecorresponding to one period length is set to T (T=one millisecond in theC/A code of the GPS), there is no frequency component having accuracy off=1/T or lower. Therefore, the frequency components of the spread codec(n) in the FFT result R(K) (K=kM, 0≦K<MN) of the received signal r(n)subjected to the discrete Fourier transform are concentrated every M,namely, on N points of MN data. Since the amplitudes of the frequencycomponents are cumulatively added for M periods, the amplitudes are Mtimes as high as those of the same frequency components for one periodlength. FIG. 11 shows an example of spectrum on condition that M=4.

In the example of FIG. 11, the spectrum of the signal is generated everyfour. There is no signal component therebetween. There is no frequencycomponent of the spread code c(n) at points other than N points. On theother hand, in many cases, the noise n(n) is a non-periodic signal.Accordingly, energy is spread to all of MN frequency components.Therefore, in the sum of N frequency components of the spread code c(n)in the FFT result R(K) of the received signal r(n), the C/N is increasedby M times in a manner similar to the cumulative addition in the timedomain.

If there is no carrier component cos 2πnf₀ shown in Expression (3) inthe received signal r(n), the frequency components of the spread codec(n) in the FFT result R(K) are concentrated every K=j×M (0≦j<N).However, the carrier components exist. According to the thirdembodiment, on condition that k=(i×M)−k₀ per period of the spread code,the readout address of the FFT result R(K) in the memory is periodicallyshifted by k₀ corresponding to the carrier frequency.

The above-mentioned whole configuration according to the thirdembodiment is similar to that of the second embodiment shown in FIG. 6.FIG. 12 shows a diagram of the configuration obtained by reflecting theforegoing processing operation to the internal configuration of the DSP100.

In other words, the FFT result R(K) obtained by setting the FFToperation processing unit as M periods of the spread code is obtained inthe FFT processing unit 103. The FFT result R(K) is stored in the memory104. The readout address is shifted and the FFT result is read from thememory 104. The FFT result is supplied to the multiplying unit 105 andis then multiplied by the FFT result of the spread code c(n) from thememory 108.

In the case of the third embodiment, correlation function F(k) obtainedby the multiplying unit 105 is set so as to satisfy Expression (8) ofFIG. 23. In Expression (8), for k₀, f₀=k₀·fs/MN.

At this time, in FIG. 12, for the peak of the correlation function f′(n)obtained by the inverse FFT processing unit 109, since R(K) contains thespread code of M periods, the M peaks appear in a range of 0≦n<MN.However, when one correlation point is detected for one period of thespread code, it is sufficient. Therefore, in a manner similar to theforegoing first and second embodiments, the calculation in the inverseFFT processing unit 109 is performed only in a rage of 0≦n<N. It isunnecessary to perform the calculation in a range of N≦n<MN.

As mentioned above, according to the third embodiment, the FFT of thereceived signal r(n) is increased by a value that is M times as high asthe FFT of one period of the spread code. Thus, the detectionsensitivity of the correlation point, namely, the reception sensitivitycan be increased.

In the third embodiment, when the spread codes corresponding to therespective satellites are subjected to the FFT and the FFT results arestored in the memory, the calculation for the FFT of the spread codec(n) upon reception of each satellite signal can be omitted.

[Fourth Embodiment]

In the foregoing third embodiment, the reception signal r(n)corresponding to the M periods (M>1) of the spread code is subjected tothe FFT process. Thus, an unknown carrier frequency can be searched andthe reception sensitivity can be increased. However, the number of datasamples is increased to MN, namely, the number of data samples N for oneperiod of the spread code is increased by M times. Therefore,calculation time for the FFT is extended and the capacity of the memory104 in FIG. 12 is increased. According to a fourth embodiment, thedisadvantage regarding the memory capacity is overcome.

As shown in the example in FIG. 11, in the case where the M periods(M>1) of the spread code are set as the FFT processing unit, thefrequency components in the FFT result R(K) appear every M. Accordingly,the components between the frequency components existing every M are notneeded.

The FFT results R(K) are divided into M sets, namely, R(i×M), R(i×M+1),R(i×M+2), . . . , and R(i×M+M−1) (0≦j<N). FIGS. 13 to 16 show exampleseach illustrating division spectrum when the FFT results are dividedinto M=4 sets. Although a carrier frequency is unknown, one of the Msets has energy of a GPS signal serving as a correlation detectiontarget. The examples in FIGS. 13 to 16 show that the set of R(i×M) inFIG. 13 includes the frequency components of the received signal r(n)and the other three division spectrum include noises.

In the actual signal, for the carrier frequency k₀, in the strict sense,k′ is not equal to k₀. For example, when k₀ exists between k₀′ andk₀′+1, the correlation is detected at both of k′=k₀′ and k′=k₀′+1. k₀′or k₀′+1 which is closer to k₀ denotes the large correlation.

In the case where the FFT results R(K) are divided into M sets asmentioned above, when M is the power of two, each set can beindividually calculated in terms of the characteristics of the FFTcalculation procedure.

FIG. 17 is a signal flow diagram for the FFT calculations of eight datag(0) to g(7). When the FFT results G(K) in FIG. 17 are divided into setsso that data is selected every four, four sets of (G(0), G(4)), (G(1),G(5)), (G(2), G(6)), and (G(3), G(7)) are obtained. When attention ispaid to (G(0), G(4)) among them, it is understood that the set can beobtained by calculating a portion shown in FIG. 18. The other sets of(G(1), G(5), (G(2), G(6)), and (G(3), G(7)) can be obtained using thesimilar calculation structure.

Each set of the four sets of data will now be inspected. First, (G(0),G(4)) is calculated. When the set is inspected, a memory in which (G(0),G(4)) is stored is freed up and the next set is processed. The sets of(G(1), G(5)), (G(2), G(6)), and (G(3), G(7)) are similarly processed sothat each set is sequentially calculated and is then inspected, andafter that, the memory in which the corresponding set is stored is freedup. Accordingly, the memory capacity can be reduced to ¼ as comparedwith the case where the FFT results of G(0) to G(7) are simultaneouslyobtained. The number of multiplying times in the case where plural datais divided into M sets and each set is calculated is the same as that inthe case where all of plural data are simultaneously FFT-calculated.

When M is the power of two, the same operation as that in the aboveexample can be applied to R(i×M), R(i×M+1), R(i×M+2), . . . , andR(i×M+M−1). The capacity of a memory storing the FFT results can bereduced to 1/M of MN, namely, N. During the operation of detecting thecorrelation in R(i×M), R(i×M+1), R(i×M+2), . . . , and R(i×M+M−1) inthis order, if the correlation point can be detected in any set, it isunnecessary to inspect the other remaining sets. Accordingly, it can beexpected that processing time is shorter than that in the case wherereceived signals every M periods of the spread code are simultaneouslysubjected to the FFT and the correlation point is then detected.

FIGS. 19 and 20 shows a flowchart of the spread-code synchronization andthe carrier synchronization according to the above-described fourthembodiment. In the example in FIGS. 19 and 20, in order to minimize thenumber of FFT times, the carrier frequency is searched every FFT set sothat the correlation detection is performed to all satellites serving asobjects. The flowchart shown in FIGS. 19 and 20 corresponds to softwareprocessing in the DSP 100.

First, a variable j (0≦j≦M) regarding the number of division sets ofR(k) is initialized (step S21). Subsequently, a received signalconverted into a digital signal by the A/D converting unit 101 is storedas a signal r(n) (0≦n≦MN) in the memory 102 (step S22). Then, the signalr(n) is subjected to the FFT by the FFT processing unit 103. A FFTresult R(k) (k=i×M+j) is stored in the memory 104 (step S23).Subsequently, a FFT result C(k) of the spread code corresponding to theGPS satellite from which the signal is received is set in the memory 108(step S24).

Then, an initial value k₀′ of the shift amount of the readout address ofthe FFT result R(k) of the received signal r(n) in the memory 104 isdetermined on the basis of, for example, past data (step S25). Thedetermined initial value k₀′ is set to the amount k′ of shift of thereadout address of the FFT result in the memory 104 and the number ofchanging times m in the shift control is set to an initial value (m=0)(step S26).

Subsequently, the FFT result R(k) of the received signal r(n) is readfrom the memory 104 so that the readout address is shifted by k′ (stepS27). A read FFT result R(k−k′) is multiplied by the FFT result of thespread code to obtain a correlation function F′(k) (step S28).

Subsequently, the correlation function F′(k) is subjected to inverse FFTto obtain a time-domain function f′(n) (step S29). A peak value f′(np)of the function f′(n) is obtained (step S30). Whether the peak valuef′(np) is larger than a preset threshold value fth is determined (stepS31).

In step S31, if it is determined that the peak value f′(np) is thepreset threshold value fth or smaller, the correlation point cannot bedetected. Then, whether the number of changing times m in the shiftcontrol is smaller than the preset maximum value m_(max) is determined(step S32). When it is determined that the number of changing times m inthe shift control is smaller than the preset maximum value m_(max), thenumber of changing times m in the shift control is increased by one(m=m+1) and the new shift amount k′ is set so that k′=k′+(−1)^(m)×m(step S33). The operation is returned to step S27. The foregoing processin step S27 and the subsequent processes are repeated.

In step S32, if it is determined that the number of changing times m inthe shift control is the preset maximum value m_(max) or larger, whetherthe foregoing spread-code synchronization search process regarding allsatellites is finished is determined (step S36). When it is determinedthat the spread-code synchronization search process regarding all thesatellites is finished, whether the variable j is smaller than themaximum value M is determined (step S38). When the variable j is smallerthan the maximum value M, the variable j is increased (step S39). Afterthat, the operation is returned to step S23 and the process in step S23and the subsequent processes are repeated.

In step S38, when it is determined that the variable j is equal to themaximum value M or larger, the search operation is finished (step S40).

In step S36, when it is determined that there is a satellite to whichthe spread-code synchronization search is not performed, the nextsatellite to which the spread-code synchronization search is performedis selected and the spread code is changed to the spread code c(n) usedin the selected satellite (step S37). The operation is returned to stepS24. The foregoing process in step S24 and the subsequent processes areexecuted.

In step S31, if it is determined that the peak value f′(np) is largerthan the preset threshold value fth, discrete time (phase of the spreadcode) np at which the peak value f′(np) is obtained is detected as thecorrelation point. The initial value k₀′ of the shift amount of thereadout address of the FFT result R(k) in the memory 104 is reset to theshift amount k′ at that time (step S34).

Whether the detected correlation point np is the fourth point isdetermined (step S35). If it is determined that the point is the fourth,the operation is shifted to a process of calculating the receiverposition and a tracking process. On the basis of the shift amount k′whereby the correlation point np detected in step S34 is obtained, theamount of Doppler shift for the GPS satellite which is being receivedand an error in the oscillation frequency of the GPS receiver can beestimated.

In step S35, if the detected correlation point np is less than thefourth point, the operation proceeds step S36 and the foregoing processin step S36 and the subsequent processes are executed.

When the carrier frequency is known in the same case as the firstembodiment, the corresponding results of R(i×M), R(i×M+1), R(i×M+2), . .. , and R(i×M+M−1) are calculated. Accordingly, the method forperforming the FFT to the received signal using time including pluralperiods of the spread code as a unit can be similarly used.

According to the above-mentioned first to fourth embodiments, in themethod for spread-code and carrier acquisition in the GPS receiver, itcan be expected that processing time is remarkably reduced utilizing thehigh-speed DSP, as compared with the use of a sliding correlator servingas the conventional technique, the sliding correlator basicallyrequiring long time.

In the above embodiments, the present invention is applied to the caseusing the received signals from the GSP satellites. The presentinvention is not limited to the case using signals from the GPSsatellites. The present invention can be applied to all cases ofperforming the spread-code and carrier acquisition with a receivedsignal, of which carrier is modulated with a signal obtained byspectrum-spreading data with a spread code.

As mentioned above, according to the present invention, in the digitalmatched filter process using the FFT, multiplication with the oscillatorin the time domain is not performed. When the FFT result of the receivedsignal is multiplied by the FFT result of the spread code, the FFTresult of any one of them is shifted. In the simple manner, the carriercomponents can be removed.

The method for performing the FFT to a received signal using pluralperiods of the spread code serving as a processing unit is used.Consequently, the reception sensitivity is increased. Advantageously,the carrier frequency can be easily searched as compared with a methodof cumulatively adding signals in the time domain for the same purpose.Since the reception sensitivity is increased, miniaturization of anantenna and an increase in receiving area can be expected.

A sliding correlator, serving as the conventional technique, basicallyrequires long time until synchronization is acquired. According to thepresent invention, processing time can be remarkably reduced using thehigh-speed DSP. Thus, there is an advantage in that the response of theGPS receiver is raised.

1. A spread spectrum signal demodulating method comprising the steps of:performing a fast Fourier transform on a received signal having carrierwave modulated with a signal obtained by spectrum-spreading data with aspread code and storing a result of the fast Fourier transform in afirst memory; reading out the result of the fast Fourier transform ofthe received signal stored in the first memory and a fast Fouriertransform result of the spread code for storing in a second memory andmultiplying the result of the first Fourier transform of the receivedsignal and the fast Fourier transform result of the spread code todetect the correlation between the received signal and the spread code;shifting a readout address of one of the fast Fourier transform resultof the received signal and the fast Fourier transform result of thespread code by an amount corresponding to a carrier frequency of thereceived signal, and reading the fast Fourier transform result from oneof the first memory and the second memory; and performing an inversefast Fourier transform to a result of the step of multiplying to detecta correlation point between the received signal and the spread code;wherein the fast Fourier transform of the received signal and the fastFourier transform of the spread code are performed every M periods,where M is a power of two that is two or more, of the spread code,wherein in the fast Fourier transform of the received signal allfrequency components of the received signal are not simultaneouslycalculated, the fast Fourier transform is divided into L times, where Lis an integer of two or more, so that same calculation structurecomponents in the fast Fourier transform are set to a unit, and the fastFourier transform of the received signal is performed every 1/L.
 2. Aspread spectrum signal demodulating apparatus comprising: fast Fouriertransform means for performing a fast Fourier transform on a receivedsignal having a carrier wave modulated with a signal obtained byspectrum-spreading data with a spread code; a first memory in which aresult of the fast Fourier transform of the received signal obtained bythe fast Fourier transform means is stored; a second memory in which aresult of fast Fourier transform of the spread code used in modulatingthe received signal is stored; multiplying means for multiplying thefast Fourier transform result of the received signal read from the firstmemory by the result of the fast Fourier transform of the spread coderead from the second memory; memory control means for shifting a readoutaddress of one of the fast Fourier transform result of the receivedsignal and the fast Fourier transform result of the spread code by anamount corresponding to a carrier frequency of the received signal andreading the fast Fourier transform result from one of the first memoryand the second memory; inverse fast Fourier transform means forperforming an inverse fast Fourier transform on a result obtained by themultiplying means to obtain a correlation detection output between thereceived signal and the spread code; and means for searching for a peakof a correlation between the received signal and the spread code basedon the correlation detection output obtained by the inverse fast Fouriertransform means to detect correlation point between the received signaland the spread code; wherein the fast Fourier transform of the receivedsignal and the fast Fourier transform of the spread code are performedevery M periods, where M is a power of two that is two or more, of thespread code, wherein the fast Fourier transform of the received signalis divided into L times, where L is an integer of two or more, so thatthe same calculation structure components in the fast Fourier transformare set to a unit, and the fast Fourier transform of the received signalis performed every 1/L.